#ifndef COMPONENTLEAF_H__
#define COMPONENTLEAF_H__

//include header
#include "Component.h"

//using namespace


namespace npComposite
{
    //class predeclaration

    class ComponentLeaf : public Component // class inheritance
    {
        //friend
        
        //embedded type
        
        public: ComponentLeaf();
        public: virtual ~ComponentLeaf();
        public: ComponentLeaf(const ComponentLeaf& cpy);
        public: ComponentLeaf& operator=(const ComponentLeaf& asn);
        public: virtual ComponentLeaf* clone() const;

        //other constructors
        public: ComponentLeaf(string name);

        //public methods
        public: virtual void add(Component* component);
        public: virtual void remove(Component* component);
        public: virtual void display(int depth);

        //protected methods

        //private methods

        //protected data

        //private data
    };
} // namespace npComposite


#endif //COMPONENTLEAF_H__
